IBM DB2 ডেটাবেস ম্যানেজমেন্ট সিস্টেমে ডেটা সংরক্ষণের জন্য বিভিন্ন Data Types এবং Constraints ব্যবহৃত হয়। Data Types ডেটার প্রকৃতি এবং বৈশিষ্ট্য নির্ধারণ করে, এবং Constraints ডেটার উপর শর্ত আরোপ করে, যা ডেটাবেসের ইন্টিগ্রিটি নিশ্চিত করে। এখানে DB2 এর প্রধান Data Types এবং Constraints সম্পর্কে বিস্তারিত আলোচনা করা হলো।
DB2 ডেটাবেসে ডেটা সংরক্ষণের জন্য বিভিন্ন ধরণের ডেটা টাইপ ব্যবহার করা হয়, যা ডেটার প্রকৃতি (যেমন সংখ্যা, টেক্সট, তারিখ) নির্ধারণ করে। DB2-এ কয়েকটি প্রধান ডেটা টাইপ রয়েছে, যেগুলি ডেটাবেসে বিভিন্ন ধরনের ডেটা সংরক্ষণে ব্যবহৃত হয়।
INTEGER: পূর্ণসংখ্যা (whole numbers) সংরক্ষণ করার জন্য ব্যবহৃত হয়। এটি ৪ বাইট স্পেস ব্যবহার করে এবং এর পরিসীমা -2,147,483,648 থেকে 2,147,483,647 পর্যন্ত।
CREATE TABLE employees (
employee_id INTEGER
);
DECIMAL/NUMERIC: দশমিক সংখ্যাগুলি (fixed-point numbers) সংরক্ষণ করতে ব্যবহৃত হয়। এটি সঠিক দশমিক স্থান নির্দিষ্ট করতে সক্ষম।
CREATE TABLE products (
price DECIMAL(10, 2)
);
এখানে DECIMAL(10, 2)
মানে দশটি সংখ্যা রাখা যাবে এবং দুটি দশমিক স্থান থাকবে।
FLOAT/REAL/DOUBLE: ভাসমান দশমিক সংখ্যা (floating-point numbers) সংরক্ষণ করার জন্য ব্যবহৃত হয়।
CREATE TABLE measurements (
weight DOUBLE
);
CHAR: নির্দিষ্ট দৈর্ঘ্যের স্ট্রিং (fixed-length string) সংরক্ষণ করতে ব্যবহৃত হয়। এটি 1 থেকে 32,672 ক্যারেক্টার পর্যন্ত সমর্থন করে।
CREATE TABLE employees (
first_name CHAR(50)
);
VARCHAR: পরিবর্তনশীল দৈর্ঘ্যের স্ট্রিং (variable-length string) সংরক্ষণ করতে ব্যবহৃত হয়। এটি একটি সর্বোচ্চ দৈর্ঘ্য নির্দিষ্ট করে।
CREATE TABLE employees (
last_name VARCHAR(100)
);
CLOB (Character Large Object): বড় পরিসরের টেক্সট ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।
CREATE TABLE articles (
content CLOB
);
DATE: শুধুমাত্র তারিখ (year, month, day) সংরক্ষণ করে।
CREATE TABLE events (
event_date DATE
);
TIME: সময় (hour, minute, second) সংরক্ষণ করতে ব্যবহৃত হয়।
CREATE TABLE meetings (
start_time TIME
);
TIMESTAMP: তারিখ এবং সময় (year, month, day, hour, minute, second) সংরক্ষণ করে।
CREATE TABLE logs (
created_at TIMESTAMP
);
BLOB (Binary Large Object): বড় আকারের বাইনারি ডেটা (যেমন ছবি, ভিডিও, বা অন্যান্য ফাইল) সংরক্ষণ করতে ব্যবহৃত হয়।
CREATE TABLE media (
file_data BLOB
);
BOOLEAN: সত্য (TRUE) অথবা মিথ্যা (FALSE) মান সংরক্ষণ করার জন্য ব্যবহৃত হয়।
CREATE TABLE users (
is_active BOOLEAN
);
DB2-এ Constraints ব্যবহৃত হয় ডেটাবেসের ডেটার ওপর শর্ত আরোপ করতে, যাতে ডেটার সঠিকতা এবং ইন্টিগ্রিটি নিশ্চিত করা যায়। এটি ডেটার মান এবং সম্পর্ক নির্ধারণ করে, যেমন কোন কলামে NULL মান থাকতে পারে না, বা কোন কলাম ইউনিক হতে হবে।
PRIMARY KEY কনস্ট্রেইন্ট ব্যবহার করা হয় টেবিলের একটি কলামে এমন একটি সুনির্দিষ্ট মান নিশ্চিত করতে, যা অদ্বিতীয় (unique) এবং NULL মান গ্রহণ করতে পারে না। এটি টেবিলের প্রতিটি রেকর্ডের জন্য একটি সুনির্দিষ্ট চিহ্ন প্রদান করে।
উদাহরণ:
CREATE TABLE employees (
employee_id INTEGER PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50)
);
এটি employee_id
কে PRIMARY KEY হিসেবে নির্ধারণ করে।
FOREIGN KEY কনস্ট্রেইন্ট অন্য একটি টেবিলের PRIMARY KEY অথবা UNIQUE কনস্ট্রেইন্টের সাথে সম্পর্ক স্থাপন করে। এটি ডেটার সম্পর্ক বজায় রাখে এবং referential integrity নিশ্চিত করে।
উদাহরণ:
CREATE TABLE orders (
order_id INTEGER PRIMARY KEY,
customer_id INTEGER,
FOREIGN KEY (customer_id) REFERENCES customers (customer_id)
);
এটি orders
টেবিলের customer_id
কলামকে customers
টেবিলের customer_id
কলামের সাথে সম্পর্কিত করে।
UNIQUE কনস্ট্রেইন্ট ব্যবহৃত হয় একটি কলামে ইউনিক মান নিশ্চিত করতে, অর্থাৎ একই মান পুনরাবৃত্তি হতে পারবে না। তবে, এটি NULL মান গ্রহণ করতে পারে।
উদাহরণ:
CREATE TABLE employees (
employee_id INTEGER PRIMARY KEY,
email VARCHAR(100) UNIQUE
);
এটি email
কলামে ইউনিক মান থাকতে বাধ্য করবে।
NOT NULL কনস্ট্রেইন্ট নিশ্চিত করে যে একটি নির্দিষ্ট কলামে NULL মান থাকতে পারবে না। এটি ডেটা পূর্ণতা নিশ্চিত করে।
উদাহরণ:
CREATE TABLE employees (
employee_id INTEGER PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL
);
এটি first_name
এবং last_name
কলামগুলোতে NULL মান গ্রহণ করতে দেবে না।
CHECK কনস্ট্রেইন্ট একটি শর্ত আরোপ করে, যাতে কলামের মান একটি নির্দিষ্ট শর্ত পূরণ করতে হয়। এটি ডেটার মান যাচাই করতে ব্যবহৃত হয়।
উদাহরণ:
CREATE TABLE employees (
employee_id INTEGER PRIMARY KEY,
age INTEGER CHECK (age > 18)
);
এটি age
কলামের জন্য একটি শর্ত আরোপ করে, যেখানে বয়স ১৮ বছরের বেশি হতে হবে।
DEFAULT কনস্ট্রেইন্ট একটি কলামের জন্য একটি ডিফল্ট মান নির্ধারণ করে, যদি ব্যবহারকারী কোনো মান না দেয়।
উদাহরণ:
CREATE TABLE employees (
employee_id INTEGER PRIMARY KEY,
status VARCHAR(20) DEFAULT 'Active'
);
এটি status
কলামে ডিফল্ট মান হিসেবে 'Active' নির্ধারণ করে।
কোনো কনস্ট্রেইন্ট মুছে ফেলতে DROP কনস্ট্রেইন্ট ব্যবহার করা হয়।
উদাহরণ:
ALTER TABLE employees DROP CONSTRAINT constraint_name;
DB2-এ Data Types এবং Constraints ডেটাবেসের কার্যকারিতা এবং নিরাপত্তা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। Data Types ডেটার প্রকৃতি নির্ধারণ করে এবং Constraints ডেটার সঠিকতা এবং ইন্টিগ্রিটি নিশ্চিত করে। এই দুইটি উপাদান একত্রে DB2 ডেটাবেসকে আরও শক্তিশালী এবং নির্ভরযোগ্য করে তোলে।
IBM DB2 একটি শক্তিশালী ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS) যা বিভিন্ন ধরনের ডেটা সংরক্ষণের জন্য বিস্তৃত Data Types সমর্থন করে। ডেটাবেসে ডেটা সঠিকভাবে স্টোর এবং ম্যানেজ করতে বিভিন্ন ধরনের ডেটা টাইপ ব্যবহৃত হয়, যেমন স্ট্রিং, ইনটিজার, ডেট, টাইম, বুলিয়ান ইত্যাদি। DB2 এ সমর্থিত ডেটা টাইপগুলি ডেটাবেস ডিজাইন এবং কুয়েরি অপ্টিমাইজেশন প্রক্রিয়ায় গুরুত্বপূর্ণ ভূমিকা পালন করে।
এই ধরনের ডেটা টাইপ স্ট্রিং ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।
CHAR(10)
- ১০ ক্যারেক্টার দৈর্ঘ্যের স্ট্রিং।VARCHAR(50)
- ৫০ ক্যারেক্টারের মধ্যে যেকোনো দৈর্ঘ্যের স্ট্রিং।এই ধরনের ডেটা টাইপ সংখ্যাগুলি স্টোর করতে ব্যবহৃত হয়।
INTEGER
- বয়স, সংখ্যা বা কাউন্ট মান।SMALLINT
- স্টেট কোড বা অন্যান্য ছোট পরিসরের সংখ্যা।BIGINT
- জাতীয় সঞ্চয় বা মোট পণ্য উৎপাদন সংখ্যা।p
হল প্রিসিশন এবং s
হল স্কেল। এটি অর্থনৈতিক হিসাবের জন্য ব্যবহৃত হয়।DECIMAL(10,2)
- ১০ অংকের সংখ্যা, যার মধ্যে ২ অংক দশমিকের পর থাকবে (যেমন 12345.67)।ডেটা এবং সময় সম্পর্কিত মান ধারণ করতে ব্যবহৃত ডেটা টাইপ।
DATE
- 2024-11-27TIME
- 15:30:00TIMESTAMP
- 2024-11-27 15:30:00TIME WITH TIMEZONE
- 15:30:00 +05:00TIMESTAMP WITH TIMEZONE
- 2024-11-27 15:30:00 +05:00বাইনারি ডেটা স্টোর করার জন্য ব্যবহৃত ডেটা টাইপ।
BINARY(10)
- ১০ বাইটের বাইনারি ডেটা।VARBINARY(50)
- ৫০ বাইটের মধ্যে যেকোনো দৈর্ঘ্যের বাইনারি ডেটা।BOOLEAN
- একক সত্য বা মিথ্যা মানের জন্য।XML
- ওয়েব সার্ভিস থেকে প্রাপ্ত XML ডেটা।DB2 এর সমর্থিত ডেটা টাইপগুলি ডেটাবেস ডিজাইন এবং কুয়েরি অপ্টিমাইজেশন প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ। DB2 বিভিন্ন ধরনের ডেটা টাইপ যেমন Character, Numeric, Date and Time, Binary, Boolean, XML, এবং অন্যান্য বিশেষ ডেটা টাইপ সমর্থন করে, যা ডেটাবেসে বিভিন্ন ধরনের তথ্য সংরক্ষণ ও পরিচালনা করতে সহায়তা করে। সঠিক ডেটা টাইপ নির্বাচন ডেটাবেসের কার্যকারিতা, নিরাপত্তা, এবং ডেটা এক্সেসের গতি উন্নত করে।
DB2 ডেটাবেসে Null এবং Not Null কনফিগারেশনগুলি ডেটাবেস টেবিলের কলামের জন্য ব্যবহৃত কনস্ট্রেইন্ট (constraints)। এগুলি ডেটা সংরক্ষণের জন্য সীমাবদ্ধতা তৈরি করে, যা নির্ধারণ করে যে একটি নির্দিষ্ট কলামে শূন্য (NULL) মান গ্রহণ করা যাবে কি না। এই কনফিগারেশনগুলি ডেটাবেসের ডেটা ইন্টিগ্রিটি এবং সঠিকতা বজায় রাখতে সহায়ক।
Null একটি বিশেষ মান যা কোনো ডেটা বা মানের অনুপস্থিতি নির্দেশ করে। এটি শূন্য (0), খালি স্ট্রিং (""), বা অন্য কোন নির্দিষ্ট মানের সমতুল্য নয়। Null মান বোঝায় যে ডেটা পাওয়া যায়নি বা প্রাসঙ্গিক নয়।
Null ব্যবহারের কিছু বৈশিষ্ট্য:
=
) বা অসমান (<>/!=) হিসেবে ব্যবহার করা যায় না। এর পরিবর্তে IS NULL বা IS NOT NULL কন্ডিশন ব্যবহার করতে হয়।Not Null হল একটি কনস্ট্রেইন্ট যা একটি কলামে Null মান প্রবেশ নিষিদ্ধ করে। যখন একটি কলামে Not Null কনস্ট্রেইন্ট দেওয়া হয়, তখন ওই কলামে শূন্য (NULL) মান রাখা যাবে না। অর্থাৎ, প্রতিটি রেকর্ডে ওই কলামে অবশ্যই একটি মান থাকা প্রয়োজন।
Not Null ব্যবহারের কিছু বৈশিষ্ট্য:
DB2-এ কলাম তৈরি করার সময় Null এবং Not Null কনফিগারেশনগুলি ব্যবহার করা হয়। এই কনফিগারেশনগুলি CREATE TABLE এবং ALTER TABLE কমান্ডের মাধ্যমে নির্ধারণ করা যায়।
যখন একটি কলামে Null মান থাকতে পারে, তখন সেটা ডিফল্টভাবেই অনুমোদিত থাকে। নিচে একটি উদাহরণ দেওয়া হলো:
CREATE TABLE Employee (
EmployeeID INT,
EmployeeName VARCHAR(100),
HireDate DATE
);
এই উদাহরণে, EmployeeName এবং HireDate কলামগুলিতে Null মান থাকতে পারে, কারণ এগুলোর জন্য Not Null কনস্ট্রেইন্ট নেই।
কোনো কলামে Not Null কনস্ট্রেইন্ট অ্যাপ্লাই করার জন্য, আপনি NOT NULL
কনস্ট্রেইন্ট ব্যবহার করবেন:
CREATE TABLE Employee (
EmployeeID INT NOT NULL,
EmployeeName VARCHAR(100) NOT NULL,
HireDate DATE NOT NULL
);
এখানে, EmployeeID, EmployeeName, এবং HireDate কলামগুলিতে Not Null কনস্ট্রেইন্ট দেওয়া হয়েছে, যার মানে হল এই কলামগুলোতে কোনো শূন্য (NULL) মান থাকতে পারবে না।
এটা মনে রাখতে হবে যে Not Null কনস্ট্রেইন্ট প্রয়োগ করার পর, ওই কলামে শূন্য (NULL) মান থাকা কোনো রেকর্ড আপডেট করা যাবে না। তবে, আপনি ALTER TABLE কমান্ডের মাধ্যমে একটি কলামে Null বা Not Null কনস্ট্রেইন্ট পরিবর্তন করতে পারেন।
Not Null কনস্ট্রেইন্ট যোগ করা:
ALTER TABLE Employee
MODIFY COLUMN EmployeeName VARCHAR(100) NOT NULL;
Null কনস্ট্রেইন্ট যোগ করা:
ALTER TABLE Employee
MODIFY COLUMN EmployeeName VARCHAR(100) NULL;
Null এবং Not Null কনস্ট্রেইন্টগুলি DB2-তে ডেটার সঠিকতা এবং পূর্ণতা বজায় রাখতে সাহায্য করে। Null কনস্ট্রেইন্ট একটি কলামে শূন্য মান গ্রহণ করার অনুমতি দেয়, যখন Not Null কনস্ট্রেইন্ট শূন্য মান নিষিদ্ধ করে। এই কনফিগারেশনগুলির সঠিক ব্যবহার ডেটাবেসের ডেটা ইন্টিগ্রিটি এবং কার্যকারিতা নিশ্চিত করতে অত্যন্ত গুরুত্বপূর্ণ।
Constraints হল ডেটাবেসের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ যা ডেটার অখণ্ডতা (integrity) এবং সঠিকতা (accuracy) নিশ্চিত করতে সাহায্য করে। Unique এবং Check constraints দুটি গুরুত্বপূর্ণ কনস্ট্রেইন্ট যা ডেটাবেস টেবিলের ডেটা সঠিকভাবে সংগঠিত ও বৈধ রাখতে ব্যবহৃত হয়। এখানে এই কনস্ট্রেইন্টগুলির ব্যবহার এবং সুবিধা সম্পর্কে বিস্তারিত আলোচনা করা হলো।
Unique Constraint একটি কনস্ট্রেইন্ট যা একটি কলামে ডুপ্লিকেট মান (duplicate values) এড়াতে সাহায্য করে। এটি নিশ্চিত করে যে কোনো নির্দিষ্ট কলামে প্রতিটি মান অনন্য (unique) হবে, অর্থাৎ একই মান একাধিক রেকর্ডে থাকতে পারে না।
ধরা যাক, আপনি একটি Customers টেবিল তৈরি করছেন, যেখানে প্রতিটি Email অবশ্যই অনন্য (unique) হবে। এই ক্ষেত্রে Email কলামে Unique কনস্ট্রেইন্ট ব্যবহার করা হবে।
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
CustomerName VARCHAR(100),
Email VARCHAR(100) UNIQUE
);
এখানে, Email কলামে Unique কনস্ট্রেইন্ট নির্ধারণ করা হয়েছে, যার ফলে এই কলামে একই ইমেইল একাধিক বার থাকতে পারবে না।
Check Constraint হল একটি কনস্ট্রেইন্ট যা টেবিলের কলামে ডেটা প্রবেশের আগে নির্দিষ্ট শর্ত বা নিয়ম বাধ্যতামূলক করে। এই কনস্ট্রেইন্টটি কলামের মান যাচাই করে এবং শুধুমাত্র সেই মানগুলি অনুমোদন করে যা নির্ধারিত শর্ত পূর্ণ করে।
ধরা যাক, আপনি একটি Employees টেবিল তৈরি করছেন যেখানে Age কলামে কর্মচারীর বয়স ১৮ বছরের বেশি হতে হবে। এই শর্তটি Check কনস্ট্রেইন্ট দিয়ে নির্ধারণ করা হবে।
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
EmployeeName VARCHAR(100),
Age INT CHECK (Age >= 18)
);
এখানে, Age কলামে Check Constraint দেওয়া হয়েছে, যার মাধ্যমে নিশ্চিত করা হচ্ছে যে, কর্মচারীর বয়স ১৮ বছরের নিচে হবে না। এই শর্তটি ভঙ্গ করলে ডেটা এন্ট্রি সম্ভব হবে না।
বৈশিষ্ট্য | Unique Constraint | Check Constraint |
---|---|---|
কাজ | কলামে ডুপ্লিকেট মান প্রতিরোধ করে। | কলামে নির্দিষ্ট শর্ত বা মান যাচাই করে। |
নাল মান | NULL মান অনুমোদিত (বেশিরভাগ ক্ষেত্রে)। | NULL মান ব্যবহার করা যাবে, তবে শর্তের উপর নির্ভর করে। |
প্রকার | একটি কলামে শুধুমাত্র একক মান থাকতে পারে। | কলামের মান অবশ্যই একটি নির্দিষ্ট শর্ত পূর্ণ করতে হবে। |
ব্যবহার | ডেটার এককতা নিশ্চিত করতে ব্যবহৃত হয়। | ডেটার বৈধতা এবং সঠিকতা নিশ্চিত করতে ব্যবহৃত হয়। |
ধরা যাক, আপনি একটি Student টেবিল তৈরি করছেন যেখানে StudentID এবং RollNo উভয়ই অনন্য হতে হবে।
CREATE TABLE Student (
StudentID INT PRIMARY KEY,
Name VARCHAR(100),
RollNo INT UNIQUE
);
এখানে, RollNo কলামে Unique কনস্ট্রেইন্ট দেওয়ার মাধ্যমে নিশ্চিত করা হচ্ছে যে, প্রতিটি ছাত্রের রোল নম্বর একক হবে এবং ডুপ্লিকেট রোল নম্বর প্রবেশ করতে পারবে না।
ধরা যাক, আপনি একটি Product টেবিল তৈরি করছেন যেখানে Price কলামের মান ১০০ এর বেশি হতে হবে। এটি Check কনস্ট্রেইন্ট ব্যবহার করে নির্ধারণ করা হবে।
CREATE TABLE Product (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(100),
Price DECIMAL(10, 2) CHECK (Price > 100)
);
এখানে, Price কলামে Check Constraint ব্যবহার করা হয়েছে, যার মাধ্যমে নিশ্চিত করা হচ্ছে যে, প্রতিটি পণ্যের দাম ১০০ এর বেশি হবে।
DB2 ডেটাবেসে Data Validation এবং Integrity Enforcement ডেটার সঠিকতা, পূর্ণতা, এবং নির্ভরযোগ্যতা নিশ্চিত করার জন্য অত্যন্ত গুরুত্বপূর্ণ। DB2 অনেক ধরনের কনস্ট্রেইন্ট এবং ডেটা ভ্যালিডেশন ফিচার সরবরাহ করে, যা ডেটাবেসের মধ্যে সঠিক তথ্য সংরক্ষণে সহায়ক।
Data Validation হল একটি প্রক্রিয়া যা নিশ্চিত করে যে, ডেটা সঠিক, পূর্ণ, এবং নির্ভরযোগ্য। DB2 এ ডেটা ভ্যালিডেশন কনস্ট্রেইন্ট এবং বিভিন্ন বিধি ব্যবহার করে করা হয়।
NOT NULL কনস্ট্রেইন্ট:
NULL
মান থাকবে না। যদি আপনি চান যে একটি কলামে ডেটা থাকা বাধ্যতামূলক, তবে NOT NULL
কনস্ট্রেইন্ট ব্যবহার করবেন।CREATE TABLE employee (
id INT NOT NULL,
name VARCHAR(100) NOT NULL,
position VARCHAR(50)
);
CHECK কনস্ট্রেইন্ট:
CHECK
কনস্ট্রেইন্টের মাধ্যমে আপনি কলামে যে ডেটা থাকবে তা একটি শর্ত পূরণ করতে হবে এমন একটি বিধি আরোপ করতে পারেন। উদাহরণস্বরূপ, যদি আপনি চান যে salary
কলামে 0 বা তার কম মান থাকতে না পারে, তবে আপনি এই কনস্ট্রেইন্ট ব্যবহার করতে পারেন:CREATE TABLE employee (
id INT,
name VARCHAR(100),
salary DECIMAL(10,2),
CHECK (salary > 0)
);
UNIQUE কনস্ট্রেইন্ট:
email
কলামে প্রতিটি মান অনন্য হতে হবে, তবে UNIQUE
কনস্ট্রেইন্ট ব্যবহার করবেন:CREATE TABLE employee (
id INT,
name VARCHAR(100),
email VARCHAR(100) UNIQUE
);
PRIMARY KEY কনস্ট্রেইন্ট:
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(100)
);
FOREIGN KEY কনস্ট্রেইন্ট:
FOREIGN KEY
কনস্ট্রেইন্ট দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করে। এটি নিশ্চিত করে যে একটি টেবিলের কোনো কলামে ডেটা অন্য একটি টেবিলের কনট্রোলড কলাম (যেমন PRIMARY KEY
) এর সাথে সঙ্গতিপূর্ণ হবে। এটি ডেটার সম্পর্ক বজায় রাখতে সহায়ক।CREATE TABLE department (
dept_id INT PRIMARY KEY,
dept_name VARCHAR(50)
);
CREATE TABLE employee (
emp_id INT PRIMARY KEY,
dept_id INT,
FOREIGN KEY (dept_id) REFERENCES department(dept_id)
);
Data Integrity হল ডেটার সঠিকতা, এক্সাক্টনেস, এবং পূর্ণতা নিশ্চিত করা। DB2 ডেটাবেসে Integrity Enforcement ডেটার সঠিকতা এবং নির্ভরযোগ্যতা নিশ্চিত করতে ব্যবহৃত কনস্ট্রেইন্টস এবং অন্যান্য বিধি বাস্তবায়ন করে। Integrity Enforcement সাধারণত এই তিনটি প্রক্রিয়া অনুসরণ করে:
PRIMARY KEY
থাকতে হবে। এটি ডেটাবেসের প্রতিটি রেকর্ডের অনন্যতা বজায় রাখে এবং ডুপ্লিকেট রেকর্ড তৈরি হতে বাধা দেয়।CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
salary
কলামে শুধুমাত্র ধনাত্মক সংখ্যাগুলি রাখতে চাইলে CHECK
কনস্ট্রেইন্ট ব্যবহার করা যেতে পারে:CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(100),
salary DECIMAL(10,2) CHECK (salary > 0)
);
Triggers:
Triggers
ব্যবহার করে আপনি বিশেষ কিছু ডেটা পরিবর্তনের উপর শর্ত আরোপ করতে পারেন। উদাহরণস্বরূপ, যখন একটি ডেটা ইনসার্ট, আপডেট বা ডিলিট হয়, তখন এটি অটোমেটিকভাবে একটি নির্দিষ্ট প্রক্রিয়া শুরু করতে পারে যা ডেটার ইন্টিগ্রিটি নিশ্চিত করবে।CREATE TRIGGER salary_check
BEFORE INSERT ON employee
REFERENCING NEW AS new_row
FOR EACH ROW
BEGIN
IF new_row.salary < 0 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Salary must be greater than zero';
END IF;
END;
DB2 ডেটাবেসে Data Validation এবং Integrity Enforcement হল ডেটার সঠিকতা, পূর্ণতা এবং নির্ভরযোগ্যতা নিশ্চিত করার জন্য ব্যবহৃত কৌশল এবং কনস্ট্রেইন্ট। NOT NULL, CHECK, UNIQUE, PRIMARY KEY, এবং FOREIGN KEY কনস্ট্রেইন্ট ব্যবহার করে আপনি ডেটা সঠিক এবং সুরক্ষিত রাখতে পারেন। Entity Integrity, Referential Integrity, এবং Domain Integrity নিশ্চিত করার মাধ্যমে DB2 ডেটাবেসে ডেটার সঠিকতা এবং সম্পর্ক বজায় রাখা হয়।
common.read_more